home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48_2
/
hidden
< prev
next >
Wrap
Internet Message Format
|
1995-03-31
|
5KB
From comp.sys.handhelds Tue Jun 11 18:30:13 1991
Path: seq!ecsgate!mcnc!taco!gatech!ncar!elroy.jpl.nasa.gov!swrinde!mips!spool.mu.edu!news.cs.indiana.edu!noose.ecn.purdue.edu!en.ecn.purdue.edu!blair
From: blair@en.ecn.purdue.edu (Marc E Blair)
Newsgroups: comp.sys.handhelds
Subject: hidden variable utility for HP48
Summary: a way to easily deal with hidden variables
Keywords: hidden variable
Message-ID: <1991Jun11.053031.12123@en.ecn.purdue.edu>
Date: 11 Jun 91 05:30:31 GMT
Organization: Purdue University Engineering Computer Network
Lines: 227
Hello everyone! This program is designed so users
can enjoy the added feature of hidden variables without
accidently causing "Try to recover memory?" errors. Here is a description of
what each program does:
NORMAL - restores a directory to its natural state, i.e. no
hidden variables
HIDE - takes an argument from level one, a variable name or list,
and hides it.
ALL - returns a list of all variables, including the '' variable and
others hidden behind it.
HIDEN - returns a list of only hidden variables.
NULL - creates '' on the stack
SPACE - creates ' ' on the stack (I use it to create directories with no
name - I set up my home menu to have only a no-name directory,
and then use my no-name directory as my home diectory. This way
I can hide "personalized commands" and other variables (like PRTPAR)
since no variables may be hidden in the home directory
(due to system use))
DELIT - takes a list from level 2 and an object from level one and deletes
that object in the list if it exists. Used by HIDE program
KEYS - redefines user keys for PURGE and CLVAR so one does not accidently
delete a non-empty directory that looks empty.
DISCLAIMER: I am not repsonsible for memory problems that may result
from cosmic rays while you are using this program or anything else.
enjoy!
----------------------------------------------------------->8
%%HP: T(3)A(D)F(.);
DIR
NORMAL
\<<
IF PATH {
HOME } \=/
THEN NULL
PURGE
END
\>>
HIDE
\<<
IF DUP TYPE 6
==
THEN 1 \->LIST
END \-> L
\<< VARS L SIZE
1 SWAP
FOR A L A
GET DELIT
NEXT
IF PATH {
HOME } \=/
THEN 5 NULL
STO NULL 1 \->LIST +
ORDER
ELSE DROP
"NOT ALLOWED AT HOME"
DOERR
END
\>>
\>>
ALL
\<< VARS DUP SIZE
NULL RCL \-> S A
\<< NULL
IFERR PURGE
THEN DROP
ELSE A NULL
RCL
IF SAME
NOT
THEN VARS
A NULL STO SWAP
IFERR
ORDER
THEN
DROP
END DUP
1 S SUB SWAP DUP
SIZE S 1 + SWAP SUB
NULL SWAP + +
END
END
\>>
\>>
HIDEN
\<< ALL DUP DUP
NULL POS
IF DUP 0 \=/
THEN 1 + SWAP
SIZE SUB
IFERR NULL
RCL DROP
THEN DROP {
}
ELSE
IF PATH {
HOME } \=/
THEN NULL
SWAP +
ELSE DROP
{ }
END
END
ELSE 3 DROPN
{ }
END
\>>
NULL
\<< "" # 5B15h
SYSEVAL
\>>
SPACE
\<< " " # 5B15h
SYSEVAL
\>>
DELIT
\<< OVER SIZE \-> S
\<< DUP2 POS \->
A
\<<
IF A 0 \=/
THEN
IF S 1
==
THEN
DROP2 { }
ELSE
IF A
1 ==
THEN
SWAP 2 S SUB SWAP
DROP
ELSE
IF A S ==
THEN SWAP 1 S 1 -
SUB SWAP DROP
ELSE SWAP DUP 1 A 1
- SUB SWAP A 1 + S
SUB + SWAP DROP
END
END
END
ELSE DROP
END
\>>
\>>
\>>
KEYSTO
\<< { S
\<<
IFERR { }
SWAP DUP
IF TYPE 5
==
THEN DUP
SIZE
ELSE 1
\->LIST 1
END 1
SWAP
FOR A DUP
A GET RCL
IF TYPE
15 ==
THEN
IF
DUP A GET RCL BYTES
SWAP DROP 6.5 ==
THEN
1
ELSE
0
END
ELSE 1
END
IF
THEN
DUP A GET PURGE
ELSE
DUP A GET ROT SWAP
+ SWAP
END
NEXT DROP
IF DUP {
} \=/
THEN \->STR
"
Non-empty directory"
+ DOERR
ELSE DROP
END
THEN
IF { } ==
THEN
"Too Few Arguements"
ELSE
DROP2
"Not Purgable"
END DOERR
END
\>> 54.2
\<<
IF PATH {
HOME } \=/
THEN ""
# 5B15h SYSEVAL
PURGE
END VARS
"HIT PURGE" 1 DISP
1 FREEZE
\>> 54.3 }
STOKEYS
\>>
END
--------------8<----------
Marc Blair
blair@en.ecn.purdue.edu "The HP48: But, can it cook?"